﻿#include <memory>
#include "acis/af_api.hxx"

outcome api_discrete_bodies(ENTITY_LIST const& bodies, facet_options* fo = NULL,
    AcisOptions* ao = NULL);

outcome api_discrete_edge(EDGE* in_EDGE,               // EDGE to approximate with linear polygons
    const double in_max_tol,     // max tolerance between real curve and facet
    const double in_max_length,  // max length of facet
    const double in_max_angle,   // max tangental angle facet passes thru
    int& out_count,              // number of points generated
    AF_POINT*& out_points,       // linked list of facets
    AcisOptions* ao = nullptr);             // version==12 for old behavior

outcome api_discrete_entities(ENTITY* owner,             // owner of entities in list
    ENTITY_LIST* entity_list,  // list of entities
    facet_options* fo, AcisOptions* ao);

outcome api_discrete_entity(ENTITY* ent, facet_options* fo = NULL,
    AcisOptions* ao = NULL);